#ifndef __IOURING_LIB_H__
#define __IOURING_LIB_H__

#include <stddef.h>  // for size_t

typedef void* IOURING_HANDLE;

#ifndef IOURING_INVALID_HANDLE
#define IOURING_INVALID_HANDLE NULL
#endif


IOURING_HANDLE IOURING_Create(unsigned int uiEntries);
void IOURING_Destroy(IOURING_HANDLE hIOURing);
int IOURING_Read(IOURING_HANDLE hIOURing, int iFd, char* pcBuff, size_t ulBuffLen);
int IOURING_Write(IOURING_HANDLE hIOURing, int iFd, const char* pcData);
int IOURING_ReadFromCQ(IOURING_HANDLE hIOURing);

void IOURING_Schedule(IOURING_HANDLE hIOURing);

#endif //__IOURING_LIB_H__